package com.tianji.remark.service;

import com.tianji.api.dto.remark.LikedTimesDTO;
import com.tianji.remark.domain.dto.LikeRecordFormDTO;
import com.tianji.remark.domain.po.LikedRecord;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 点赞记录表 服务类
 * </p>
 *
 * @author xioayang
 * @since 2024-06-28
 */
public interface ILikedRecordService extends IService<LikedRecord> {

    /**
     * 点赞或取消点赞
     * @param recordFormDTO 点赞业务类型
     */
    void addLikeRecord(LikeRecordFormDTO recordFormDTO);

    /**
     * 批量查询点赞状态
     * @param bizIds 点赞业务id
     * @return 点赞状态
     */
    Set<Long> isBizLiked(List<Long> bizIds);

    /**
     * 读取点赞次数并发送消息
     * @param bizType 业务类型
     * @param maxBizSize 最大业务数量
     */
    void readLikeTimesAndSendMessage(String bizType, Integer maxBizSize);
}
